﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Cotizav.CONEXION;
using System.Data;

namespace Cotizav.CONTROLADOR
{
    class CtrlContactoCotizacion
    {
        private ConexionDataContext conexion;
        private CtrlContactos ctContactos;
        List<CONTACTO> contactos;

        public CtrlContactoCotizacion()
        {
            ctContactos = new CtrlContactos();
            contactos = new List<CONTACTO>();
        }

        internal void registrarContactoCotizacion(CONEXION.CONTACTO_COTIZACION ccon, CONEXION.COTIZACION cotiz)
        {
            using (conexion = new ConexionDataContext())
            {
                try
                {
                    ccon.idCotizacion = cotiz.idCotizacion;

                    conexion.CONTACTO_COTIZACION.InsertOnSubmit(ccon);
                    conexion.SubmitChanges();
                }
                catch (Exception)
                {
                    throw;
                }
            }
        }

        internal List<CONTACTO> getListContactoCotizacion(string idCotizacion)
        {
            using (conexion = new ConexionDataContext())
            {
                try
                {
                    List<CONTACTO_COTIZACION> listContCot = conexion.CONTACTO_COTIZACION.Where(x => x.idCotizacion == idCotizacion && x.eliminado == 0).ToList();

                    foreach (CONTACTO_COTIZACION ccot in listContCot)
                    {
                        CONTACTO cont = ctContactos.getContacto(ccot.idContacto);
                        contactos.Add(cont);
                    }

                    return contactos;
                }
                catch (Exception)
                {
                    throw;
                }
            }
        }

        internal DataTable getListContactoxCotizacion(string idCotizacion)
        {
            DataTable result = new DataTable();

            using (conexion = new ConexionDataContext())
            {
                var query = conexion.usp_listarContactosxCotizacion(idCotizacion);

                result.Columns.Add("idCotizacion", Type.GetType("System.String"));
                result.Columns.Add("idContacto", Type.GetType("System.String"));
                result.Columns.Add("nombre", Type.GetType("System.String"));

                DataRow dr;

                foreach (var c in query)
                {
                    dr = result.NewRow();

                    dr[0] = c.idCotizacion.Trim() ?? string.Empty;
                    dr[1] = c.idContacto.Trim() ?? string.Empty;
                    dr[2] = c.nombre.Trim() ?? string.Empty;

                    result.Rows.Add(dr);
                }

                return result;
            }
        }
    }
}
